






namespace RIABlog.Web
{
	using System;
	using System.Collections.Generic;
	using System.ComponentModel;
	using System.ComponentModel.DataAnnotations;
	using System.Linq;
	using System.ServiceModel;
	using System.ServiceModel.DomainServices.Client;
	using System.ServiceModel.DomainServices.Client.ApplicationServices;
	public sealed partial class AuthenticationContext : global::System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationDomainContextBase
	{
		public AuthenticationContext() : 
			this(new WebDomainClient<IAuthenticationServiceContract>(new Uri("RIABlog-Web-AuthenticationService.svc", UriKind.Relative)))
		{
		}
				
		public AuthenticationContext(Uri serviceUri) : 
			this(new WebDomainClient<IAuthenticationServiceContract>(serviceUri))
		{
		}
		
		public AuthenticationContext(DomainClient domainClient) :
			base(domainClient)
		{
			this.OnCreated();
		}
		protected override EntityContainer CreateEntityContainer()
		{
			return new AuthenticationContextEntityContainer();
		}
		internal sealed class AuthenticationContextEntityContainer : EntityContainer
		{
			public AuthenticationContextEntityContainer()
			{
				this.CreateEntitySet<RIABlog.Web.User>(EntitySetOperations.Edit);}
		}
		public EntityQuery<RIABlog.Web.User> GetUserQuery(
		)
		{
			this.ValidateMethod("GetUserQuery", null);
			return base.CreateQuery<RIABlog.Web.User>("GetUser", null, 
					false, false);
		}
		public EntityQuery<RIABlog.Web.User> LoginQuery(
		string userName, string password, bool isPersistent, string customData)
		{
			Dictionary<string, object> parameters = new Dictionary<string, object>();			
			parameters.Add("userName", userName);
			parameters.Add("password", password);
			parameters.Add("isPersistent", isPersistent);
			parameters.Add("customData", customData);
			this.ValidateMethod("LoginQuery", parameters);
			return base.CreateQuery<RIABlog.Web.User>("Login", parameters, 
					true, false);
		}
		public EntityQuery<RIABlog.Web.User> LogoutQuery(
		)
		{
			this.ValidateMethod("LogoutQuery", null);
			return base.CreateQuery<RIABlog.Web.User>("Logout", null, 
					true, false);
		}
		public EntitySet<RIABlog.Web.User> Users
		{
		    get
		    {
		        return base.EntityContainer.GetEntitySet<RIABlog.Web.User>();
		    }
		}
		[System.ServiceModel.ServiceContract()]
		public interface IAuthenticationServiceContract
		{
			[System.ServiceModel.Web.WebGet]
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/AuthenticationService/GetUserDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/AuthenticationService/GetUser", ReplyAction="http://tempuri.org/AuthenticationService/GetUserResponse")]	
			System.IAsyncResult BeginGetUser(
			System.AsyncCallback callback, object asyncState);
					
			System.ServiceModel.DomainServices.Client.QueryResult<RIABlog.Web.User> EndGetUser(System.IAsyncResult result);
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/AuthenticationService/LoginDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/AuthenticationService/Login", ReplyAction="http://tempuri.org/AuthenticationService/LoginResponse")]	
			System.IAsyncResult BeginLogin(
			string userName,
			string password,
			bool isPersistent,
			string customData,
			System.AsyncCallback callback, object asyncState);
					
			System.ServiceModel.DomainServices.Client.QueryResult<RIABlog.Web.User> EndLogin(System.IAsyncResult result);
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/AuthenticationService/LogoutDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/AuthenticationService/Logout", ReplyAction="http://tempuri.org/AuthenticationService/LogoutResponse")]	
			System.IAsyncResult BeginLogout(
			System.AsyncCallback callback, object asyncState);
					
			System.ServiceModel.DomainServices.Client.QueryResult<RIABlog.Web.User> EndLogout(System.IAsyncResult result);
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/AuthenticationService/SubmitChangesDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/AuthenticationService/SubmitChanges", ReplyAction="http://tempuri.org/AuthenticationService/SubmitChangesResponse")]	
			IAsyncResult BeginSubmitChanges(IEnumerable<ChangeSetEntry> changeSet, AsyncCallback callback, object asyncState);
			IEnumerable<ChangeSetEntry> EndSubmitChanges(IAsyncResult result);			
		}
				
		partial void OnCreated();
	}
}






namespace RIABlog.Web
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web")]
	public sealed partial class User : RIABlogBaseEntity, global::System.Security.Principal.IIdentity, global::System.Security.Principal.IPrincipal
	{
		public User()
		{
			this.OnCreated();
		}
		[System.Runtime.Serialization.DataMemberAttribute()]
		public string FriendlyName
		{
			get
			{
				return this._friendlyName;
			} 
			set 
			{
				if(this._friendlyName != value)
				{
					this.OnFriendlyNameChanging(value);	
					this.RaiseDataMemberChanging("FriendlyName");
					this.ValidateProperty("FriendlyName", value);
					this._friendlyName = value;
					this.RaiseDataMemberChanged("FriendlyName");
					this.OnFriendlyNameChanged();
				}
			}
		}
		private string _friendlyName;
		[System.Runtime.Serialization.DataMemberAttribute()]
		public System.DateTime LastLoginTime
		{
			get
			{
				return this._lastLoginTime;
			} 
			set 
			{
				if(this._lastLoginTime != value)
				{
					this.OnLastLoginTimeChanging(value);	
					this.RaiseDataMemberChanging("LastLoginTime");
					this.ValidateProperty("LastLoginTime", value);
					this._lastLoginTime = value;
					this.RaiseDataMemberChanged("LastLoginTime");
					this.OnLastLoginTimeChanged();
				}
			}
		}
		private System.DateTime _lastLoginTime;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false, AllowInitialValue=true)]
		[System.ComponentModel.DataAnnotations.KeyAttribute()]
		[System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute()]
		public string Name
		{
			get
			{
				return this._name;
			} 
			set 
			{
				if(this._name != value)
				{
					this.OnNameChanging(value);	
					this.ValidateProperty("Name", value);
					this._name = value;
					this.RaisePropertyChanged("Name");
					this.OnNameChanged();
				}
			}
		}
		private string _name;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false)]
		public System.Collections.Generic.IEnumerable<string> Roles
		{
			get
			{
				return this._roles;
			} 
			set 
			{
				if(this._roles != value)
				{
					this.OnRolesChanging(value);	
					this.ValidateProperty("Roles", value);
					this._roles = value;
					this.RaisePropertyChanged("Roles");
					this.OnRolesChanged();
				}
			}
		}
		private System.Collections.Generic.IEnumerable<string> _roles;
		public override object GetIdentity()
		{
			return this._name;
		}
		partial void OnCreated();
		partial void OnFriendlyNameChanging(string value);
		partial void OnFriendlyNameChanged();
		partial void OnLastLoginTimeChanging(System.DateTime value);
		partial void OnLastLoginTimeChanged();
		partial void OnNameChanging(string value);
		partial void OnNameChanged();
		partial void OnRolesChanging(System.Collections.Generic.IEnumerable<string> value);
		partial void OnRolesChanged();
		string global::System.Security.Principal.IIdentity.AuthenticationType
		{
		    get
		    {
		        return string.Empty;
		    }
		}
		
		public bool IsAuthenticated
		{
		    get
		    {
		        return (true != string.IsNullOrEmpty(this.Name));
		    }
		}
		
		string global::System.Security.Principal.IIdentity.Name
		{
		    get
		    {
		        return this.Name;
		    }
		}
		
		global::System.Security.Principal.IIdentity global::System.Security.Principal.IPrincipal.Identity
		{
		    get
		    {
		        return this;
		    }
		}
		
		public bool IsInRole(string role)
		{
		    if ((this.Roles == null))
		    {
		        return false;
		    }
		    return global::System.Linq.Enumerable.Contains(this.Roles, role);
		}
	}
}







namespace RIABlog.Web
{
	using System;
	using System.Collections.Generic;
	using System.ComponentModel;
	using System.ComponentModel.DataAnnotations;
	using System.Linq;
	using System.ServiceModel;
	using System.ServiceModel.DomainServices.Client;
	using System.ServiceModel.DomainServices.Client.ApplicationServices;
	public sealed partial class RIABlogContext : RIABlogBaseDomainContext
	{
		public RIABlogContext() : 
			this(new WebDomainClient<IRIABlogServiceContract>(new Uri("RIABlog-Web-RIABlogService.svc", UriKind.Relative)))
		{
		}
				
		public RIABlogContext(Uri serviceUri) : 
			this(new WebDomainClient<IRIABlogServiceContract>(serviceUri))
		{
		}
		
		public RIABlogContext(DomainClient domainClient) :
			base(domainClient)
		{
			this.OnCreated();
		}
		protected override EntityContainer CreateEntityContainer()
		{
			return new RIABlogContextEntityContainer();
		}
		internal sealed class RIABlogContextEntityContainer : EntityContainer
		{
			public RIABlogContextEntityContainer()
			{
				this.CreateEntitySet<RIABlog.Web.Models.BaseCommand>(EntitySetOperations.None);this.CreateEntitySet<RIABlog.Web.Models.Blog>(EntitySetOperations.All);this.CreateEntitySet<RIABlog.Web.Models.BlogPost>(EntitySetOperations.Add | EntitySetOperations.Remove);this.CreateEntitySet<RIABlog.Web.Models.Comment>(EntitySetOperations.Add);}
		}
		public EntityQuery<RIABlog.Web.Models.BlogPost> GetBlogPostsQuery(
		System.Guid blogId)
		{
			Dictionary<string, object> parameters = new Dictionary<string, object>();			
			parameters.Add("blogId", blogId);
			this.ValidateMethod("GetBlogPostsQuery", parameters);
			return base.CreateQuery<RIABlog.Web.Models.BlogPost>("GetBlogPosts", parameters, 
					false, true);
		}
		public EntityQuery<RIABlog.Web.Models.Blog> GetBlogsQuery(
		)
		{
			this.ValidateMethod("GetBlogsQuery", null);
			return base.CreateQuery<RIABlog.Web.Models.Blog>("GetBlogs", null, 
					false, true);
		}
		public EntityQuery<RIABlog.Web.Models.BaseCommand> GetCommandsQuery(
		)
		{
			this.ValidateMethod("GetCommandsQuery", null);
			return base.CreateQuery<RIABlog.Web.Models.BaseCommand>("GetCommands", null, 
					false, true);
		}
		public InvokeOperation<string> ExecuteCommand(
		RIABlog.Web.Models.BaseCommand command, System.Guid entityId, Action<InvokeOperation<string>> callback, object userState
		)
		{
			Dictionary<string, object> parameters = new Dictionary<string, object>();			
			parameters.Add("command", command);
			parameters.Add("entityId", entityId);
			this.ValidateMethod("ExecuteCommand", parameters);
			return ((InvokeOperation<string>)(this.InvokeOperation("ExecuteCommand", typeof(string), parameters, 
			true,
			callback, userState)));
		}
		public InvokeOperation<string> ExecuteCommand(
		RIABlog.Web.Models.BaseCommand command, System.Guid entityId)
		{
			Dictionary<string, object> parameters = new Dictionary<string, object>();			
			parameters.Add("command", command);
			parameters.Add("entityId", entityId);
			this.ValidateMethod("ExecuteCommand", parameters);
			return ((InvokeOperation<string>)(this.InvokeOperation("ExecuteCommand", typeof(string), parameters, 
			true,
			null, null)));
		}
		public EntitySet<RIABlog.Web.Models.BlogPost> BlogPosts
		{
		    get
		    {
		        return base.EntityContainer.GetEntitySet<RIABlog.Web.Models.BlogPost>();
		    }
		}
		public EntitySet<RIABlog.Web.Models.Blog> Blogs
		{
		    get
		    {
		        return base.EntityContainer.GetEntitySet<RIABlog.Web.Models.Blog>();
		    }
		}
		public EntitySet<RIABlog.Web.Models.BaseCommand> BaseCommands
		{
		    get
		    {
		        return base.EntityContainer.GetEntitySet<RIABlog.Web.Models.BaseCommand>();
		    }
		}
		[System.ServiceModel.ServiceContract()]
		public interface IRIABlogServiceContract
		{
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/RIABlogService/ExecuteCommandDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/RIABlogService/ExecuteCommand", ReplyAction="http://tempuri.org/RIABlogService/ExecuteCommandResponse")]	
			System.IAsyncResult BeginExecuteCommand(
			RIABlog.Web.Models.BaseCommand command,
			System.Guid entityId,
			System.AsyncCallback callback, object asyncState);
					
			string EndExecuteCommand(System.IAsyncResult result);
			[System.ServiceModel.Web.WebGet]
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/RIABlogService/GetBlogPostsDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/RIABlogService/GetBlogPosts", ReplyAction="http://tempuri.org/RIABlogService/GetBlogPostsResponse")]	
			System.IAsyncResult BeginGetBlogPosts(
			System.Guid blogId,
			System.AsyncCallback callback, object asyncState);
					
			System.ServiceModel.DomainServices.Client.QueryResult<RIABlog.Web.Models.BlogPost> EndGetBlogPosts(System.IAsyncResult result);
			[System.ServiceModel.Web.WebGet]
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/RIABlogService/GetBlogsDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/RIABlogService/GetBlogs", ReplyAction="http://tempuri.org/RIABlogService/GetBlogsResponse")]	
			System.IAsyncResult BeginGetBlogs(
			System.AsyncCallback callback, object asyncState);
					
			System.ServiceModel.DomainServices.Client.QueryResult<RIABlog.Web.Models.Blog> EndGetBlogs(System.IAsyncResult result);
			[System.ServiceModel.Web.WebGet]
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/RIABlogService/GetCommandsDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/RIABlogService/GetCommands", ReplyAction="http://tempuri.org/RIABlogService/GetCommandsResponse")]	
			System.IAsyncResult BeginGetCommands(
			System.AsyncCallback callback, object asyncState);
					
			System.ServiceModel.DomainServices.Client.QueryResult<RIABlog.Web.Models.BaseCommand> EndGetCommands(System.IAsyncResult result);
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/RIABlogService/SubmitChangesDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/RIABlogService/SubmitChanges", ReplyAction="http://tempuri.org/RIABlogService/SubmitChangesResponse")]	
			IAsyncResult BeginSubmitChanges(IEnumerable<ChangeSetEntry> changeSet, AsyncCallback callback, object asyncState);
			IEnumerable<ChangeSetEntry> EndSubmitChanges(IAsyncResult result);			
		}
				
		partial void OnCreated();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	public sealed partial class AgreeCommand : RIABlog.Web.Models.BaseCommand
	{
		public AgreeCommand()
		{
			this.OnCreated();
		}
		partial void OnCreated();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	[System.Runtime.Serialization.KnownType(typeof(RIABlog.Web.Models.AgreeCommand))]
	[System.Runtime.Serialization.KnownType(typeof(RIABlog.Web.Models.DisagreeCommand))]
	[System.Runtime.Serialization.KnownType(typeof(RIABlog.Web.Models.ModerateCommand))]
	public abstract partial class BaseCommand : RIABlogBaseEntity
	{
		protected BaseCommand()
		{
			this.OnCreated();
		}
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false)]
		[System.ComponentModel.ReadOnlyAttribute(true)]
		public string Hint
		{
			get
			{
				return this._hint;
			} 
			set 
			{
				if(this._hint != value)
				{
					this.OnHintChanging(value);	
					this.ValidateProperty("Hint", value);
					this._hint = value;
					this.RaisePropertyChanged("Hint");
					this.OnHintChanged();
				}
			}
		}
		private string _hint;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false, AllowInitialValue=true)]
		[System.ComponentModel.DataAnnotations.KeyAttribute()]
		[System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute()]
		public System.Guid Id
		{
			get
			{
				return this._id;
			} 
			set 
			{
				if(this._id != value)
				{
					this.OnIdChanging(value);	
					this.ValidateProperty("Id", value);
					this._id = value;
					this.RaisePropertyChanged("Id");
					this.OnIdChanged();
				}
			}
		}
		private System.Guid _id;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false)]
		[System.ComponentModel.ReadOnlyAttribute(true)]
		public int OrderPos
		{
			get
			{
				return this._orderPos;
			} 
			set 
			{
				if(this._orderPos != value)
				{
					this.OnOrderPosChanging(value);	
					this.ValidateProperty("OrderPos", value);
					this._orderPos = value;
					this.RaisePropertyChanged("OrderPos");
					this.OnOrderPosChanged();
				}
			}
		}
		private int _orderPos;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false)]
		[System.ComponentModel.ReadOnlyAttribute(true)]
		public string RelativeImageUrl
		{
			get
			{
				return this._relativeImageUrl;
			} 
			set 
			{
				if(this._relativeImageUrl != value)
				{
					this.OnRelativeImageUrlChanging(value);	
					this.ValidateProperty("RelativeImageUrl", value);
					this._relativeImageUrl = value;
					this.RaisePropertyChanged("RelativeImageUrl");
					this.OnRelativeImageUrlChanged();
				}
			}
		}
		private string _relativeImageUrl;
		public override object GetIdentity()
		{
			return this._id;
		}
		partial void OnCreated();
		partial void OnHintChanging(string value);
		partial void OnHintChanged();
		partial void OnIdChanging(System.Guid value);
		partial void OnIdChanged();
		partial void OnOrderPosChanging(int value);
		partial void OnOrderPosChanged();
		partial void OnRelativeImageUrlChanging(string value);
		partial void OnRelativeImageUrlChanged();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	public sealed partial class Blog : RIABlogBaseEntity
	{
		public Blog()
		{
			this.OnCreated();
		}
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public string Author
		{
			get
			{
				return this._author;
			} 
			set 
			{
				if(this._author != value)
				{
					this.OnAuthorChanging(value);	
					this.RaiseDataMemberChanging("Author");
					this.ValidateProperty("Author", value);
					this._author = value;
					this.RaiseDataMemberChanged("Author");
					this.OnAuthorChanged();
				}
			}
		}
		private string _author;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false, AllowInitialValue=true)]
		[System.ComponentModel.DataAnnotations.KeyAttribute()]
		[System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute()]
		public System.Guid Id
		{
			get
			{
				return this._id;
			} 
			set 
			{
				if(this._id != value)
				{
					this.OnIdChanging(value);	
					this.ValidateProperty("Id", value);
					this._id = value;
					this.RaisePropertyChanged("Id");
					this.OnIdChanged();
				}
			}
		}
		private System.Guid _id;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public System.DateTime TimeCreated
		{
			get
			{
				return this._timeCreated;
			} 
			set 
			{
				if(this._timeCreated != value)
				{
					this.OnTimeCreatedChanging(value);	
					this.RaiseDataMemberChanging("TimeCreated");
					this.ValidateProperty("TimeCreated", value);
					this._timeCreated = value;
					this.RaiseDataMemberChanged("TimeCreated");
					this.OnTimeCreatedChanged();
				}
			}
		}
		private System.DateTime _timeCreated;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public System.DateTime TimeLastPosted
		{
			get
			{
				return this._timeLastPosted;
			} 
			set 
			{
				if(this._timeLastPosted != value)
				{
					this.OnTimeLastPostedChanging(value);	
					this.RaiseDataMemberChanging("TimeLastPosted");
					this.ValidateProperty("TimeLastPosted", value);
					this._timeLastPosted = value;
					this.RaiseDataMemberChanged("TimeLastPosted");
					this.OnTimeLastPostedChanged();
				}
			}
		}
		private System.DateTime _timeLastPosted;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"BlogTitle",ResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		[System.ComponentModel.DataAnnotations.RegularExpressionAttribute(@"^[^/:*?<>|\x5C\x22]*$", ErrorMessageResourceName=@"BlogTitleErrorMessage",ErrorMessageResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		[System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"BlogTitleErrorMessage",ErrorMessageResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		public string Title
		{
			get
			{
				return this._title;
			} 
			set 
			{
				if(this._title != value)
				{
					this.OnTitleChanging(value);	
					this.RaiseDataMemberChanging("Title");
					this.ValidateProperty("Title", value);
					this._title = value;
					this.RaiseDataMemberChanged("Title");
					this.OnTitleChanged();
				}
			}
		}
		private string _title;
		public override object GetIdentity()
		{
			return this._id;
		}
		partial void OnCreated();
		partial void OnAuthorChanging(string value);
		partial void OnAuthorChanged();
		partial void OnIdChanging(System.Guid value);
		partial void OnIdChanged();
		partial void OnTimeCreatedChanging(System.DateTime value);
		partial void OnTimeCreatedChanged();
		partial void OnTimeLastPostedChanging(System.DateTime value);
		partial void OnTimeLastPostedChanged();
		partial void OnTitleChanging(string value);
		partial void OnTitleChanged();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	public sealed partial class BlogPost : RIABlogBaseEntity
	{
		public BlogPost()
		{
			this.OnCreated();
		}
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public System.Guid BlogId
		{
			get
			{
				return this._blogId;
			} 
			set 
			{
				if(this._blogId != value)
				{
					this.OnBlogIdChanging(value);	
					this.RaiseDataMemberChanging("BlogId");
					this.ValidateProperty("BlogId", value);
					this._blogId = value;
					this.RaiseDataMemberChanged("BlogId");
					this.OnBlogIdChanged();
				}
			}
		}
		private System.Guid _blogId;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false, AllowInitialValue=true)]
		[System.ComponentModel.DataAnnotations.KeyAttribute()]
		[System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute()]
		public System.Guid Id
		{
			get
			{
				return this._id;
			} 
			set 
			{
				if(this._id != value)
				{
					this.OnIdChanging(value);	
					this.ValidateProperty("Id", value);
					this._id = value;
					this.RaisePropertyChanged("Id");
					this.OnIdChanged();
				}
			}
		}
		private System.Guid _id;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public System.Collections.Generic.IEnumerable<RIABlog.Web.Models.Keyword> Keywords
		{
			get
			{
				return this._keywords;
			} 
			set 
			{
				if(this._keywords != value)
				{
					this.OnKeywordsChanging(value);	
					this.RaiseDataMemberChanging("Keywords");
					this.ValidateProperty("Keywords", value);
					this._keywords = value;
					this.RaiseDataMemberChanged("Keywords");
					this.OnKeywordsChanged();
				}
			}
		}
		private System.Collections.Generic.IEnumerable<RIABlog.Web.Models.Keyword> _keywords;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"BlogPostText",Order=2,ResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		public string Text
		{
			get
			{
				return this._text;
			} 
			set 
			{
				if(this._text != value)
				{
					this.OnTextChanging(value);	
					this.RaiseDataMemberChanging("Text");
					this.ValidateProperty("Text", value);
					this._text = value;
					this.RaiseDataMemberChanged("Text");
					this.OnTextChanged();
				}
			}
		}
		private string _text;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public System.DateTime TimePosted
		{
			get
			{
				return this._timePosted;
			} 
			set 
			{
				if(this._timePosted != value)
				{
					this.OnTimePostedChanging(value);	
					this.RaiseDataMemberChanging("TimePosted");
					this.ValidateProperty("TimePosted", value);
					this._timePosted = value;
					this.RaiseDataMemberChanged("TimePosted");
					this.OnTimePostedChanged();
				}
			}
		}
		private System.DateTime _timePosted;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"BlogPostTitle",Order=1,ResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		[System.ComponentModel.DataAnnotations.RegularExpressionAttribute(@"^[^/:*?<>|\x5C\x22]*$", ErrorMessageResourceName=@"BlogPostTitleErrorMessage",ErrorMessageResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		[System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"BlogPostTitleErrorMessage",ErrorMessageResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		public string Title
		{
			get
			{
				return this._title;
			} 
			set 
			{
				if(this._title != value)
				{
					this.OnTitleChanging(value);	
					this.RaiseDataMemberChanging("Title");
					this.ValidateProperty("Title", value);
					this._title = value;
					this.RaiseDataMemberChanged("Title");
					this.OnTitleChanged();
				}
			}
		}
		private string _title;
		private System.ServiceModel.DomainServices.Client.EntityCollection<RIABlog.Web.Models.Comment> _comments;
		[System.ComponentModel.DataAnnotations.AssociationAttribute(@"Comments", @"Id", @"PostId")]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public System.ServiceModel.DomainServices.Client.EntityCollection<RIABlog.Web.Models.Comment> Comments
		{
			get
			{
				if(this._comments == null)
				{
					this._comments = new System.ServiceModel.DomainServices.Client.EntityCollection<RIABlog.Web.Models.Comment>(this, "Comments", this.FilterComments);
				}
				return this._comments;
			}
		}
		private bool FilterComments(RIABlog.Web.Models.Comment entity)
		{
			return (entity.PostId == this.Id);
		}
		public override object GetIdentity()
		{
			return this._id;
		}
		partial void OnCreated();
		partial void OnBlogIdChanging(System.Guid value);
		partial void OnBlogIdChanged();
		partial void OnIdChanging(System.Guid value);
		partial void OnIdChanged();
		partial void OnKeywordsChanging(System.Collections.Generic.IEnumerable<RIABlog.Web.Models.Keyword> value);
		partial void OnKeywordsChanged();
		partial void OnTextChanging(string value);
		partial void OnTextChanged();
		partial void OnTimePostedChanging(System.DateTime value);
		partial void OnTimePostedChanged();
		partial void OnTitleChanging(string value);
		partial void OnTitleChanged();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	public sealed partial class Comment : RIABlogBaseEntity
	{
		public Comment()
		{
			this.OnCreated();
		}
		[System.Runtime.Serialization.DataMemberAttribute()]
		public string Author
		{
			get
			{
				return this._author;
			} 
			set 
			{
				if(this._author != value)
				{
					this.OnAuthorChanging(value);	
					this.RaiseDataMemberChanging("Author");
					this.ValidateProperty("Author", value);
					this._author = value;
					this.RaiseDataMemberChanged("Author");
					this.OnAuthorChanged();
				}
			}
		}
		private string _author;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		[System.ComponentModel.DataAnnotations.EditableAttribute(false, AllowInitialValue=true)]
		[System.ComponentModel.DataAnnotations.KeyAttribute()]
		[System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute()]
		public System.Guid Id
		{
			get
			{
				return this._id;
			} 
			set 
			{
				if(this._id != value)
				{
					this.OnIdChanging(value);	
					this.ValidateProperty("Id", value);
					this._id = value;
					this.RaisePropertyChanged("Id");
					this.OnIdChanged();
				}
			}
		}
		private System.Guid _id;
		[System.Runtime.Serialization.DataMemberAttribute()]
		public System.Guid PostId
		{
			get
			{
				return this._postId;
			} 
			set 
			{
				if(this._postId != value)
				{
					this.OnPostIdChanging(value);	
					this.RaiseDataMemberChanging("PostId");
					this.ValidateProperty("PostId", value);
					this._postId = value;
					this.RaiseDataMemberChanged("PostId");
					this.OnPostIdChanged();
				}
			}
		}
		private System.Guid _postId;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"BlogPostText",Order=2,ResourceType=typeof(RIABlog.Web.Models.FieldDisplayNames))]
		public string Text
		{
			get
			{
				return this._text;
			} 
			set 
			{
				if(this._text != value)
				{
					this.OnTextChanging(value);	
					this.RaiseDataMemberChanging("Text");
					this.ValidateProperty("Text", value);
					this._text = value;
					this.RaiseDataMemberChanged("Text");
					this.OnTextChanged();
				}
			}
		}
		private string _text;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(AutoGenerateField=false)]
		public System.DateTime TimePosted
		{
			get
			{
				return this._timePosted;
			} 
			set 
			{
				if(this._timePosted != value)
				{
					this.OnTimePostedChanging(value);	
					this.RaiseDataMemberChanging("TimePosted");
					this.ValidateProperty("TimePosted", value);
					this._timePosted = value;
					this.RaiseDataMemberChanged("TimePosted");
					this.OnTimePostedChanged();
				}
			}
		}
		private System.DateTime _timePosted;
		public override object GetIdentity()
		{
			return this._id;
		}
		partial void OnCreated();
		partial void OnAuthorChanging(string value);
		partial void OnAuthorChanged();
		partial void OnIdChanging(System.Guid value);
		partial void OnIdChanged();
		partial void OnPostIdChanging(System.Guid value);
		partial void OnPostIdChanged();
		partial void OnTextChanging(string value);
		partial void OnTextChanged();
		partial void OnTimePostedChanging(System.DateTime value);
		partial void OnTimePostedChanged();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	public sealed partial class DisagreeCommand : RIABlog.Web.Models.BaseCommand
	{
		public DisagreeCommand()
		{
			this.OnCreated();
		}
		partial void OnCreated();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	public sealed partial class ModerateCommand : RIABlog.Web.Models.BaseCommand
	{
		public ModerateCommand()
		{
			this.OnCreated();
		}
		partial void OnCreated();
	}
}






namespace RIABlog.Web.Models
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web.Models")]
	public sealed partial class Keyword : System.ServiceModel.DomainServices.Client.ComplexObject
	{
		public Keyword()
		{
			this.OnCreated();
		}
		[System.Runtime.Serialization.DataMemberAttribute()]
		public int Popularity
		{
			get
			{
				return this._popularity;
			} 
			set 
			{
				if(this._popularity != value)
				{
					this.OnPopularityChanging(value);	
					this.RaiseDataMemberChanging("Popularity");
					this.ValidateProperty("Popularity", value);
					this._popularity = value;
					this.RaiseDataMemberChanged("Popularity");
					this.OnPopularityChanged();
				}
			}
		}
		private int _popularity;
		[System.Runtime.Serialization.DataMemberAttribute()]
		public string Title
		{
			get
			{
				return this._title;
			} 
			set 
			{
				if(this._title != value)
				{
					this.OnTitleChanging(value);	
					this.RaiseDataMemberChanging("Title");
					this.ValidateProperty("Title", value);
					this._title = value;
					this.RaiseDataMemberChanged("Title");
					this.OnTitleChanged();
				}
			}
		}
		private string _title;
		partial void OnCreated();
		partial void OnPopularityChanging(int value);
		partial void OnPopularityChanged();
		partial void OnTitleChanging(string value);
		partial void OnTitleChanged();
	}
}






namespace RIABlog.Web
{
	using System;
	using System.Collections.Generic;
	using System.ComponentModel;
	using System.ComponentModel.DataAnnotations;
	using System.Linq;
	using System.ServiceModel;
	using System.ServiceModel.DomainServices.Client;
	using System.ServiceModel.DomainServices.Client.ApplicationServices;
	public sealed partial class UserRegistrationContext : RIABlogBaseDomainContext
	{
		public UserRegistrationContext() : 
			this(new WebDomainClient<IUserRegistrationServiceContract>(new Uri("RIABlog-Web-UserRegistrationService.svc", UriKind.Relative)))
		{
		}
				
		public UserRegistrationContext(Uri serviceUri) : 
			this(new WebDomainClient<IUserRegistrationServiceContract>(serviceUri))
		{
		}
		
		public UserRegistrationContext(DomainClient domainClient) :
			base(domainClient)
		{
			this.OnCreated();
		}
		protected override EntityContainer CreateEntityContainer()
		{
			return new UserRegistrationContextEntityContainer();
		}
		internal sealed class UserRegistrationContextEntityContainer : EntityContainer
		{
			public UserRegistrationContextEntityContainer()
			{
			}
		}
		public InvokeOperation<RIABlog.Web.CreateUserStatus> CreateUser(
		RIABlog.Web.RegistrationData user, [System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"ValidationErrorRequiredField",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		[System.ComponentModel.DataAnnotations.StringLengthAttribute(50, ErrorMessageResourceName=@"ValidationErrorBadPasswordLength",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources),MinimumLength=6)]
		string password, Action<InvokeOperation<RIABlog.Web.CreateUserStatus>> callback, object userState
		)
		{
			Dictionary<string, object> parameters = new Dictionary<string, object>();			
			parameters.Add("user", user);
			parameters.Add("password", password);
			this.ValidateMethod("CreateUser", parameters);
			return ((InvokeOperation<RIABlog.Web.CreateUserStatus>)(this.InvokeOperation("CreateUser", typeof(RIABlog.Web.CreateUserStatus), parameters, 
			true,
			callback, userState)));
		}
		public InvokeOperation<RIABlog.Web.CreateUserStatus> CreateUser(
		RIABlog.Web.RegistrationData user, [System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"ValidationErrorRequiredField",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		[System.ComponentModel.DataAnnotations.StringLengthAttribute(50, ErrorMessageResourceName=@"ValidationErrorBadPasswordLength",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources),MinimumLength=6)]
		string password)
		{
			Dictionary<string, object> parameters = new Dictionary<string, object>();			
			parameters.Add("user", user);
			parameters.Add("password", password);
			this.ValidateMethod("CreateUser", parameters);
			return ((InvokeOperation<RIABlog.Web.CreateUserStatus>)(this.InvokeOperation("CreateUser", typeof(RIABlog.Web.CreateUserStatus), parameters, 
			true,
			null, null)));
		}
		[System.ServiceModel.ServiceContract()]
		public interface IUserRegistrationServiceContract
		{
			[FaultContract(typeof(DomainServiceFault), Action="http://tempuri.org/UserRegistrationService/CreateUserDomainServiceFault", Name="DomainServiceFault", Namespace="DomainServices")]
			[OperationContract(AsyncPattern=true, Action="http://tempuri.org/UserRegistrationService/CreateUser", ReplyAction="http://tempuri.org/UserRegistrationService/CreateUserResponse")]	
			System.IAsyncResult BeginCreateUser(
			RIABlog.Web.RegistrationData user,
			string password,
			System.AsyncCallback callback, object asyncState);
					
			RIABlog.Web.CreateUserStatus EndCreateUser(System.IAsyncResult result);
		}
				
		partial void OnCreated();
	}
}






namespace RIABlog.Web
{
	[System.Runtime.Serialization.DataContract(Namespace = "http://schemas.datacontract.org/2004/07/RIABlog.Web")]
	public sealed partial class RegistrationData : System.ServiceModel.DomainServices.Client.ComplexObject
	{
		public RegistrationData()
		{
			this.OnCreated();
		}
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"SecurityAnswerLabel",Order=6,ResourceType=typeof(RIABlog.Web.Resources.RegistrationDataResources))]
		[System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"ValidationErrorRequiredField",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		[System.ComponentModel.DataAnnotations.StringLengthAttribute(128, ErrorMessageResourceName=@"ValidationErrorBadAnswerLength",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		public string Answer
		{
			get
			{
				return this._answer;
			} 
			set 
			{
				if(this._answer != value)
				{
					this.OnAnswerChanging(value);	
					this.RaiseDataMemberChanging("Answer");
					this.ValidateProperty("Answer", value);
					this._answer = value;
					this.RaiseDataMemberChanged("Answer");
					this.OnAnswerChanged();
				}
			}
		}
		private string _answer;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"EmailLabel",Order=2,ResourceType=typeof(RIABlog.Web.Resources.RegistrationDataResources))]
		[System.ComponentModel.DataAnnotations.RegularExpressionAttribute(@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessageResourceName=@"ValidationErrorInvalidEmail",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		[System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"ValidationErrorRequiredField",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		public string Email
		{
			get
			{
				return this._email;
			} 
			set 
			{
				if(this._email != value)
				{
					this.OnEmailChanging(value);	
					this.RaiseDataMemberChanging("Email");
					this.ValidateProperty("Email", value);
					this._email = value;
					this.RaiseDataMemberChanged("Email");
					this.OnEmailChanged();
				}
			}
		}
		private string _email;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Description=@"FriendlyNameDescription",Name=@"FriendlyNameLabel",Order=1,ResourceType=typeof(RIABlog.Web.Resources.RegistrationDataResources))]
		[System.ComponentModel.DataAnnotations.StringLengthAttribute(255, ErrorMessageResourceName=@"ValidationErrorBadFriendlyNameLength",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		public string FriendlyName
		{
			get
			{
				return this._friendlyName;
			} 
			set 
			{
				if(this._friendlyName != value)
				{
					this.OnFriendlyNameChanging(value);	
					this.RaiseDataMemberChanging("FriendlyName");
					this.ValidateProperty("FriendlyName", value);
					this._friendlyName = value;
					this.RaiseDataMemberChanged("FriendlyName");
					this.OnFriendlyNameChanged();
				}
			}
		}
		private string _friendlyName;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"SecurityQuestionLabel",Order=5,ResourceType=typeof(RIABlog.Web.Resources.RegistrationDataResources))]
		[System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"ValidationErrorRequiredField",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		public string Question
		{
			get
			{
				return this._question;
			} 
			set 
			{
				if(this._question != value)
				{
					this.OnQuestionChanging(value);	
					this.RaiseDataMemberChanging("Question");
					this.ValidateProperty("Question", value);
					this._question = value;
					this.RaiseDataMemberChanged("Question");
					this.OnQuestionChanged();
				}
			}
		}
		private string _question;
		[System.Runtime.Serialization.DataMemberAttribute()]
		[System.ComponentModel.DataAnnotations.DisplayAttribute(Name=@"UserNameLabel",Order=0,ResourceType=typeof(RIABlog.Web.Resources.RegistrationDataResources))]
		[System.ComponentModel.DataAnnotations.RegularExpressionAttribute(@"^[a-zA-Z0-9_]*$", ErrorMessageResourceName=@"ValidationErrorInvalidUserName",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		[System.ComponentModel.DataAnnotations.RequiredAttribute(ErrorMessageResourceName=@"ValidationErrorRequiredField",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources))]
		[System.ComponentModel.DataAnnotations.StringLengthAttribute(255, ErrorMessageResourceName=@"ValidationErrorBadUserNameLength",ErrorMessageResourceType=typeof(RIABlog.Web.Resources.ValidationErrorResources),MinimumLength=4)]
		public string UserName
		{
			get
			{
				return this._userName;
			} 
			set 
			{
				if(this._userName != value)
				{
					this.OnUserNameChanging(value);	
					this.RaiseDataMemberChanging("UserName");
					this.ValidateProperty("UserName", value);
					this._userName = value;
					this.RaiseDataMemberChanged("UserName");
					this.OnUserNameChanged();
				}
			}
		}
		private string _userName;
		partial void OnCreated();
		partial void OnAnswerChanging(string value);
		partial void OnAnswerChanged();
		partial void OnEmailChanging(string value);
		partial void OnEmailChanged();
		partial void OnFriendlyNameChanging(string value);
		partial void OnFriendlyNameChanged();
		partial void OnQuestionChanging(string value);
		partial void OnQuestionChanged();
		partial void OnUserNameChanging(string value);
		partial void OnUserNameChanged();
	}
}





namespace RIABlog
{
	public sealed partial class WebContext : System.ServiceModel.DomainServices.Client.ApplicationServices.WebContextBase
	{
		public WebContext()
		{			
			this.OnCreated();
		}
		partial void OnCreated();
		public new static WebContext Current
		{
		    get
		    {
		        return ((WebContext)(System.ServiceModel.DomainServices.Client.ApplicationServices.WebContextBase.Current));
		    }
		}
		public new RIABlog.Web.User User
		{
			get { return (RIABlog.Web.User)base.User; }
		}
	}
}






namespace RIABlog.Web{
	public enum CreateUserStatus{
		 
		Success = 0 , 
		InvalidUserName = 1 , 
		InvalidPassword = 2 , 
		InvalidQuestion = 3 , 
		InvalidAnswer = 4 , 
		InvalidEmail = 5 , 
		DuplicateUserName = 6 , 
		DuplicateEmail = 7 , 
		Failure = 8 }
}

